Контекстне меню Dolphin
Створення контекстної дії для Dolphin.
Відкрийте теку ~/.local/share/kservices5/ServiceMenus. Якщо цієї теки немає, просто створіть її.
mkdir -p ~/.local/share/kservices5/ServiceMenus kate ~/.local/share/kservices5/ServiceMenus/edit-from-root.desktop
Щоб було зручно редагувати текстові файли від імені root - створити файл під назвою edit-from-root.desktop. Називати файл можна як завгодно, головне додати суфікс .desktop
edit-from-root.desktop
[Desktop Entry] X-KDE-ServiceTypes=KonqPopupMenu/Plugin X-KDE-Priority=TopLevel Type=Service MimeType=text/* Actions=EditFromRoot[Desktop Action EditFromRoot] Name=Edit from root Name[uk]=Редагувати як root Icon=alienarena # Exec=konsole -e sudo nano -w %U Exec=konsole -e sudo vim
Перша секція створює пункт контекстного меню із вказівником на дію (Actions). У рядку b>MimeType можна вказати типи файлів, для яких відображатиметься дія.
Друга секція визначає саму дію. Рядок Name визначає текст, яким буде підписано дію в контекстному меню. Ну, а Exec містить команду, яку потрібно виконати. Сюди можна вписувати ті ж команди, що вводяться в термінал, або шлях до якогось скрипту.
Перед редагуванням файлу зберегти його резервну копію.
Вручну це робиться так: виклик контекстного меню файлу -> "Копіювати" -> "Вставити" -> введення нової назви файлу. Можна написати desktop-файл:[Desktop Entry] X-KDE-ServiceTypes=KonqPopupMenu/Plugin X-KDE-Priority=TopLevel Type=Service MimeType=all/all Actions=SaveStateПотрібно також створити вказаний у[Desktop Action SaveState] Name=Save state Exec=~/.local/share/kservices5/ServiceMenus/save-state.sh
Exec
скрипт:
vim ~/.local/share/kservices5/ServiceMenus/save-state.sh
#!/bin/bash file_name=$1 cp "$file_name" "$file_name"@$(date +%Y.%m.%d-%H:%M:%S) exit 0
[peturik@peturik-precision5540 ~]$ cd ~/.local/share/kservices5/ServiceMenus [peturik@peturik-precision5540 ServiceMenus]$ ls app-folder-mpv.desktop app-folder-player.desktop edit-from-root.desktop save-state.desktop save-state.sh
[peturik@peturik-precision5540 ServiceMenus]$ cat app-folder-player.desktop [Desktop Entry] Actions=folderappopen ServiceTypes=KonqPopupMenu/Plugin,inode/directory Type=Service X-KDE-Priority=TopLevel[Desktop Action folderappopen] Exec=deadbeef Icon=deadbeef Name=Відкрити теку в DeadBeef
[peturik@peturik-precision5540 ServiceMenus]$ cat app-folder-mpv.desktop [Desktop Entry] Actions=folderappopen ServiceTypes=KonqPopupMenu/Plugin,inode/directory Type=Service X-KDE-Priority=TopLevel[Desktop Action folderappopen] Exec=mpv Icon=mpv Name=Відкрити теку в mpv Media Player
[peturik@peturik-precision5540 ServiceMenus]$ cat edit-from-root.desktop [Desktop Entry] X-KDE-ServiceTypes=KonqPopupMenu/Plugin X-KDE-Priority=TopLevel Type=Service MimeType=text/* Actions=EditFromRoot[Desktop Action EditFromRoot] Name=Edit from root Name[uk]=Редагувати як root Icon=alienarena #Exec=konsole -e sudo nano -w %U Exec=konsole -e sudo vim
[peturik@peturik-precision5540 ServiceMenus]$ cat save-state.desktop [Desktop Entry] X-KDE-ServiceTypes=KonqPopupMenu/Plugin X-KDE-Priority=TopLevel Type=Service MimeType=all/all Actions=SaveState[Desktop Action SaveState] Name=Save state Icon=yast-timezone Exec=~/.local/share/kservices5/ServiceMenus/save-state.sh
[peturik@peturik-precision5540 ServiceMenus]$ cat save-state.sh #!/bin/bashCategory: Linux | Comments: 0file_name=$1 cp "$file_name" "$file_name"@$(date +%Y.%m.%d-%H:%M:%S)
exit 0